/**
 * @author:gao
 * @date:2020/6/17
 * @time:10:43
 * @version:0.0.1
 * @description:none
 */




//1014
    /*
    给定正整数数组 A，A[i] 表示第 i 个观光景点的评分，
    并且两个景点 i 和 j 之间的距离为 j - i。
    一对景点（i < j）组成的观光组合的得分为（A[i] + A[j] + i - j）：
    景点的评分之和减去它们两者之间的距离。
     返回一对观光景点能取得的最高分。
    */

//将复杂度的方法就是，在遍历找第二个位置j的同时找第一个位置
class Solution {
    public int maxScoreSightseeingPair(int[] A) {
        int len = A.length;
        int max = Integer.MIN_VALUE;
        int max_plus = A[0];
        int max_minux = Integer.MIN_VALUE;
        for(int i=1;i<len;i++){
            max_plus = Integer.max(max_plus,A[i-1]+i-1);
            max = Integer.max(max,max_plus+A[i]-i);

        }
        return max;
    }
}
